package com.wande.dataplatform.service;

import com.wande.common.mybatis.core.page.PageQuery;
import com.wande.common.mybatis.core.page.TableDataInfo;
import com.wande.dataplatform.domain.vo.QualityReportVo;

import java.time.LocalDate;
import java.util.List;
import java.util.Map;

/**
 * 数据质量报告服务接口
 *
 * @author wande
 */
public interface IQualityReportService {

    /**
     * 查询质量报告列表
     */
    TableDataInfo<QualityReportVo> queryPageList(QualityReportVo vo, PageQuery pageQuery);

    /**
     * 根据ID查询质量报告
     */
    QualityReportVo queryById(Long id);

    /**
     * 根据任务ID查询最新报告
     */
    QualityReportVo queryLatestByTaskId(Long taskId);

    /**
     * 根据表ID查询报告列表
     */
    List<QualityReportVo> queryByTableId(Long tableId, LocalDate startDate, LocalDate endDate);

    /**
     * 获取质量趋势统计
     */
    Map<String, Object> getQualityTrend(Long tableId, LocalDate startDate, LocalDate endDate);

    /**
     * 获取维度统计
     */
    Map<String, Object> getDimensionStats(Long tableId);

    /**
     * 删除报告
     */
    Boolean deleteById(Long id);
}
